The subject matter of this invention relates generally to programmable controllers and especially to the use of attribute controlled shift registers therein.
Relay logic ladders include "rungs" of interconnected switches, relay contacts and output devices (such as relay coils) disposed in rows between two conductors of a power supply. Principles of relay logic are utilized for controlling electromechanical devices in the ladders. Using art in existence prior to the advent of relay line solver technology, relays, switches and other devices of the logic ladders which are hard-wired and relatively large electromechanical devices are strung together between the conductors of a power supply. The various switches and contacts of the relay logic ladder are in various states of conduction or non-conduction depending upon the disposition of mechanical devices such as floats or depending upon the disposition of output devices such as relay coils to which they are interlinked electrically or mechanically. In the event that appropriate contacts or switches are in a closed state in a given "rung" of the ladder, the output device, usually a relay coil controlled by the "rung" will be actuated. The actuation will cause certain actions external or internal to the relay ladder to occur.
With the advent of computer technology, the relay ladder diagram, which is a graphical representation of the relay ladder, is simulated with the programmable controller. This eliminates the bulky, relatively expensive relays, saves space, and generally reduces the need for expensive hard-wired interconnections. The "programmable" portion of the controller gives the computer operator or logic system designer flexibility. The programmable controller may be computer controlled or matrix controlled. An example of a matrix controlled programmable controller can be found in U.S. Pat. No. 3,950,736, issued Apr. 13, 1976 to Dix et al. Essentially, this requires the use of a diode matrix which may be programmed by moving diodes into and out of the matrix in a predetermined fashion. One disadvantage of this is the relatively cumbersome arrangement of the diode matrix and the level of dexterity and skill required in using or programming it.
With a computer controlled ladder diagram solver (sometimes called a line solver), a programming panel is used for initially programming or for subsequently changing the status of various memories contained therein. Examples of this may be found in U.S. Pat. No. 4,021,783, issued May 3, 1977 to G. C. Highberger, and entitled "PROGRAMMABLE CONTROLLER". A further example is found in the Allen-Bradley Company, Bulletin No. 1774, entitled "PLC PROGRAMMING AND OPERATION". Still a further example is found in the bulletin from Industrial Solid States Controls, Inc., dated 1/73, entitled, "IPC.sup.tm INDUSTRIAL PROGRAMMABLE CONTROLLER MEMORY LOADER/MONITOR (L/M)". Still another example is found in U.S. Pat. No. 3,686,639, issued Aug. 26, 1972, to Fletcher et al. and entitled, "DIGITAL COMPUTER-INDUSTRIAL CONTROLLER SYSTEM AND APPARATUS". Another example is found in a SQUARE D COMPANY bulletin dated Jan. 2, 1975, identified by the following: "Cl.8881 PROGRAMMABLE CONTROLLER PROGRAM BOX-APPLICATION OF TYPE PR-2 PROGRAM BOX". Another example is found in apparatus described in manuals provided by the MODICON Company entitled, "MODICON 184/384 MANUAL" June 1977 (for example, pp 31-65 and A-2 through A-5) and "484 MANUAL, MARCH 1978" (for example, pp III-1 through III-32 and A-1 through A-20). Still another example is found in a General Electric Company descriptive bulletin dated January 1977 and entitled "LOGITROL CONTROL". With the computer controlled programmable controller, a relatively-skilled operator utilizes keys or other entry means on the programming panel to enter a graphical representation of the ladder diagram into the various memories of the programmable controller. After the ladder diagram has been entered, the various input and output devices of the programmable controller are periodically sampled and updated. During a sampling process, information concerning the real world status of the contacts, relays, coils, etc. is fed into memories in the programmable controller. During a line solving operation, information from these memories is combined with information from the memory containing the program information and jointly fed to solution apparatus within the programmable controller whereupon a solution is derived concerning the status of the various contacts and coils as a function of the program ladder diagram and the real world status of the coils and contacts. This information is then utilized to update or change contact and coil status in accordance with the solution. The line solver tests the disposition of the various contacts in conjunction with the arrangement of the contacts and interimly stores data concerned therewith in memory apparatus. Often one or two or even more solutions must be conducted concurrently because of the parallel nature of some of the apparatus in the rungs of the ladder diagram. Towards the end of a rung solution process, the variously stored information is brought together by the line solver into one solution member which usually determines the status of the output coil controlled by the various relay contacts. This information is then stored in a memory for utilization at a later sampling time to correspondingly control the actual status of the coil in question. The need to provide parallel solutions during an interim process in the line solver is disadvantageous because of the large number of operations associated therewith and the memory space required. This also has a tendency to force a reduction in the size and complexity of the ladder diagrams which can be solved. Usually, the more complex the ladder diagram to be solved, the more memory space is required for entering solutions and the more operations are required for final solution. In addition, the opportunity for undesirable relay race conditions is present as is the opportunity for mistake from failure within the line solver due to the large number of solutions required. It would be advantageous therefore, if means could be found for solving relatively complex ladder diagrams within the line solving portion of the programmable controller where every solution step is done in series with other solution steps even though many complex parallel or parallel-series branches exist in the rung to be solved. It would be further advantageous if the interim memory devices were relatively simple nonmagnetic type devices so that an expensive large magnetic core memory device could be eliminated or utilized for other purposes in the programmable controller. It would be further advantageous if the memory device was local to the line solver so that transmission of data along common buses to remote memory locations could be avoided.